package com.bookstore.service.impl;

import com.bookstore.dao.ProductDao;
import com.bookstore.dao.impl.ProductDaoImpl;
import com.bookstore.entity.Page;
import com.bookstore.entity.Product;
import com.bookstore.service.ProductService;

import java.util.List;

public class ProductServiceImpl implements ProductService {
    ProductDao productDao = new ProductDaoImpl();

    @Override
    public int insertProduct(Product product) {
        return productDao.insertProduct(product);
    }

    @Override
    public int updateProduct(Product product) {
        return productDao.updateProduct(product);
    }

    @Override
    public int deleteProduct(Long productId) {
        return productDao.deleteProduct(productId);
    }

    @Override
    public List<Product> queryAllProducts() {
        return productDao.queryAllProducts();
    }

    @Override
    public Product queryProductById(Long productId) {
        return productDao.queryProductById(productId);
    }

    @Override
    public Page<Product> page(int pageNo, int pageSize) {
        Page<Product> page = new Page<Product>();
        // 设置每页显示的数量
        page.setPageSize(pageSize);
        // 求总记录数
        Integer pageTotalCount = productDao.queryForPageTotalCount();
        // 设置总记录数
        page.setPageTotalCount(pageTotalCount);
        // 求总页码
        Integer pageTotal = pageTotalCount / pageSize;
        if (pageTotalCount % pageSize > 0) {
            pageTotal += 1;
        }
        // 设置总页码
        page.setPageTotal(pageTotal);
        // 求当前页数据的开始索引
//        int begin = (page.getPageNo() - 1) * pageSize;
        // 设置当前页码
        page.setPageNo(pageNo);
        // 求当前页数据
//        List<Product> items = productDao.queryForPageItems(begin, pageSize);
        List<Product> items = productDao.queryForPageItems((page.getPageNo() - 1) * pageSize, pageSize);
        // 设置当前页数据
        page.setItems(items);
        return page;
    }
}
